TPTP Problem File: ITP144^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : ITP144^1 : TPTP v8.2.0. Released v7.5.0.
% Domain   : Interactive Theorem Proving
% Problem  : Sledgehammer PHoareTotal problem prob_493__3263728_1
% Version  : Especial.
% English  :

% Refs     : [BH+15] Blanchette et al. (2015), Mining the Archive of Formal
%          : [Des21] Desharnais (2021), Email to Geoff Sutcliffe
% Source   : [Des21]
% Names    : PHoareTotal/prob_493__3263728_1 [Des21]

% Status   : Theorem
% Rating   : 0.30 v8.2.0, 0.23 v8.1.0, 0.27 v7.5.0
% Syntax   : Number of formulae    :  138 (  54 unt;  26 typ;   0 def)
%            Number of atoms       :  265 ( 153 equ;   0 cnn)
%            Maximal formula atoms :    7 (   2 avg)
%            Number of connectives :  728 (  51   ~;   4   |;  26   &; 546   @)
%                                         (   0 <=>; 101  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   15 (   5 avg)
%            Number of types       :    5 (   4 usr)
%            Number of type conns  :   91 (  91   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   24 (  22 usr;   3 con; 0-3 aty)
%            Number of variables   :  286 (  41   ^; 230   !;  15   ?; 286   :)
% SPC      : TH0_THM_EQU_NAR

% Comments : This file was generated by Sledgehammer 2021-02-23 15:33:49.690
%------------------------------------------------------------------------------
% Could-be-implicit typings (4)
thf(ty_n_t__Set__Oset_It__Set__Oset_Itf__b_J_J,type,
    set_set_b: $tType ).

thf(ty_n_t__Set__Oset_Itf__b_J,type,
    set_b: $tType ).

thf(ty_n_tf__b,type,
    b: $tType ).

thf(ty_n_tf__a,type,
    a: $tType ).

% Explicit typings (22)
thf(sy_c_Fun_Obij__betw_001tf__b_001tf__b,type,
    bij_betw_b_b: ( b > b ) > set_b > set_b > $o ).

thf(sy_c_Fun_Oinj__on_001tf__b_001t__Set__Oset_Itf__b_J,type,
    inj_on_b_set_b: ( b > set_b ) > set_b > $o ).

thf(sy_c_Fun_Oinj__on_001tf__b_001tf__b,type,
    inj_on_b_b: ( b > b ) > set_b > $o ).

thf(sy_c_Groups_Ominus__class_Ominus_001t__Set__Oset_Itf__b_J,type,
    minus_minus_set_b: set_b > set_b > set_b ).

thf(sy_c_Hilbert__Choice_OEps_001tf__b,type,
    hilbert_Eps_b: ( b > $o ) > b ).

thf(sy_c_Hilbert__Choice_Oinv__into_001tf__b_001tf__b,type,
    hilbert_inv_into_b_b: set_b > ( b > b ) > b > b ).

thf(sy_c_Orderings_Obot__class_Obot_001_062_Itf__b_M_Eo_J,type,
    bot_bot_b_o: b > $o ).

thf(sy_c_Orderings_Obot__class_Obot_001t__Set__Oset_Itf__b_J,type,
    bot_bot_set_b: set_b ).

thf(sy_c_Orderings_Otop__class_Otop_001_062_Itf__b_M_Eo_J,type,
    top_top_b_o: b > $o ).

thf(sy_c_Orderings_Otop__class_Otop_001t__Set__Oset_Itf__b_J,type,
    top_top_set_b: set_b ).

thf(sy_c_Set_OCollect_001tf__b,type,
    collect_b: ( b > $o ) > set_b ).

thf(sy_c_Set_Oimage_001t__Set__Oset_Itf__b_J_001t__Set__Oset_Itf__b_J,type,
    image_set_b_set_b: ( set_b > set_b ) > set_set_b > set_set_b ).

thf(sy_c_Set_Oimage_001tf__b_001tf__b,type,
    image_b_b: ( b > b ) > set_b > set_b ).

thf(sy_c_Set_Oinsert_001tf__b,type,
    insert_b: b > set_b > set_b ).

thf(sy_c_Set_Ois__empty_001tf__b,type,
    is_empty_b: set_b > $o ).

thf(sy_c_Set_Ois__singleton_001tf__b,type,
    is_singleton_b: set_b > $o ).

thf(sy_c_Set_Oremove_001tf__b,type,
    remove_b: b > set_b > set_b ).

thf(sy_c_Set_Othe__elem_001tf__b,type,
    the_elem_b: set_b > b ).

thf(sy_c_member_001t__Set__Oset_Itf__b_J,type,
    member_set_b: set_b > set_set_b > $o ).

thf(sy_c_member_001tf__b,type,
    member_b: b > set_b > $o ).

thf(sy_v_P,type,
    p: a > $o ).

thf(sy_v_Q,type,
    q: a > b > $o ).

% Relevant facts (110)
thf(fact_0_some__equality,axiom,
    ! [P: b > $o,A: b] :
      ( ( P @ A )
     => ( ! [X: b] :
            ( ( P @ X )
           => ( X = A ) )
       => ( ( hilbert_Eps_b @ P )
          = A ) ) ) ).

% some_equality
thf(fact_1_some__eq__trivial,axiom,
    ! [X2: b] :
      ( ( hilbert_Eps_b
        @ ^ [Y: b] : Y = X2 )
      = X2 ) ).

% some_eq_trivial
thf(fact_2_some__sym__eq__trivial,axiom,
    ! [X2: b] :
      ( ( hilbert_Eps_b
        @ ( ^ [Y2: b,Z: b] : Y2 = Z
          @ X2 ) )
      = X2 ) ).

% some_sym_eq_trivial
thf(fact_3_verit__sko__ex_H,axiom,
    ! [P: b > $o,A2: $o] :
      ( ( ( P @ ( hilbert_Eps_b @ P ) )
        = A2 )
     => ( ( ? [X3: b] : ( P @ X3 ) )
        = A2 ) ) ).

% verit_sko_ex'
thf(fact_4_verit__sko__forall,axiom,
    ( ( ^ [P2: b > $o] :
        ! [X3: b] : ( P2 @ X3 ) )
    = ( ^ [P3: b > $o] :
          ( P3
          @ ( hilbert_Eps_b
            @ ^ [X4: b] :
                ~ ( P3 @ X4 ) ) ) ) ) ).

% verit_sko_forall
thf(fact_5_someI2,axiom,
    ! [P: b > $o,A: b,Q: b > $o] :
      ( ( P @ A )
     => ( ! [X: b] :
            ( ( P @ X )
           => ( Q @ X ) )
       => ( Q @ ( hilbert_Eps_b @ P ) ) ) ) ).

% someI2
thf(fact_6_verit__sko__forall_H,axiom,
    ! [P: b > $o,A2: $o] :
      ( ( ( P
          @ ( hilbert_Eps_b
            @ ^ [X4: b] :
                ~ ( P @ X4 ) ) )
        = A2 )
     => ( ( ! [X3: b] : ( P @ X3 ) )
        = A2 ) ) ).

% verit_sko_forall'
thf(fact_7_verit__sko__forall_H_H,axiom,
    ! [B: b,A2: b,P: b > $o] :
      ( ( B = A2 )
     => ( ( ( hilbert_Eps_b @ P )
          = A2 )
        = ( ( hilbert_Eps_b @ P )
          = B ) ) ) ).

% verit_sko_forall''
thf(fact_8_someI__ex,axiom,
    ! [P: b > $o] :
      ( ? [X_1: b] : ( P @ X_1 )
     => ( P @ ( hilbert_Eps_b @ P ) ) ) ).

% someI_ex
thf(fact_9_someI2__ex,axiom,
    ! [P: b > $o,Q: b > $o] :
      ( ? [X_1: b] : ( P @ X_1 )
     => ( ! [X: b] :
            ( ( P @ X )
           => ( Q @ X ) )
       => ( Q @ ( hilbert_Eps_b @ P ) ) ) ) ).

% someI2_ex
thf(fact_10_someI2__bex,axiom,
    ! [A2: set_b,P: b > $o,Q: b > $o] :
      ( ? [X5: b] :
          ( ( member_b @ X5 @ A2 )
          & ( P @ X5 ) )
     => ( ! [X: b] :
            ( ( ( member_b @ X @ A2 )
              & ( P @ X ) )
           => ( Q @ X ) )
       => ( Q
          @ ( hilbert_Eps_b
            @ ^ [X4: b] :
                ( ( member_b @ X4 @ A2 )
                & ( P @ X4 ) ) ) ) ) ) ).

% someI2_bex
thf(fact_11_some__eq__ex,axiom,
    ! [P: b > $o] :
      ( ( P @ ( hilbert_Eps_b @ P ) )
      = ( ? [X3: b] : ( P @ X3 ) ) ) ).

% some_eq_ex
thf(fact_12_some__eq__imp,axiom,
    ! [P: b > $o,A: b,B2: b] :
      ( ( ( hilbert_Eps_b @ P )
        = A )
     => ( ( P @ B2 )
       => ( P @ A ) ) ) ).

% some_eq_imp
thf(fact_13_tfl__some,axiom,
    ! [P4: b > $o,X5: b] :
      ( ( P4 @ X5 )
     => ( P4 @ ( hilbert_Eps_b @ P4 ) ) ) ).

% tfl_some
thf(fact_14_Eps__cong,axiom,
    ! [P: b > $o,Q: b > $o] :
      ( ! [X: b] :
          ( ( P @ X )
          = ( Q @ X ) )
     => ( ( hilbert_Eps_b @ P )
        = ( hilbert_Eps_b @ Q ) ) ) ).

% Eps_cong
thf(fact_15_someI,axiom,
    ! [P: b > $o,X2: b] :
      ( ( P @ X2 )
     => ( P @ ( hilbert_Eps_b @ P ) ) ) ).

% someI
thf(fact_16_verit__sko__forall__indirect2,axiom,
    ! [X2: b,P: b > $o,P5: b > $o] :
      ( ( X2
        = ( hilbert_Eps_b
          @ ^ [X4: b] :
              ~ ( P @ X4 ) ) )
     => ( ! [X: b] :
            ( ( P @ X )
            = ( P5 @ X ) )
       => ( ( ! [X3: b] : ( P5 @ X3 ) )
          = ( P @ X2 ) ) ) ) ).

% verit_sko_forall_indirect2
thf(fact_17_verit__sko__forall__indirect,axiom,
    ! [X2: b,P: b > $o] :
      ( ( X2
        = ( hilbert_Eps_b
          @ ^ [X4: b] :
              ~ ( P @ X4 ) ) )
     => ( ( ! [X3: b] : ( P @ X3 ) )
        = ( P @ X2 ) ) ) ).

% verit_sko_forall_indirect
thf(fact_18_some1__equality,axiom,
    ! [P: b > $o,A: b] :
      ( ? [X5: b] :
          ( ( P @ X5 )
          & ! [Y3: b] :
              ( ( P @ Y3 )
             => ( Y3 = X5 ) ) )
     => ( ( P @ A )
       => ( ( hilbert_Eps_b @ P )
          = A ) ) ) ).

% some1_equality
thf(fact_19_verit__sko__ex__indirect2,axiom,
    ! [X2: b,P: b > $o,P5: b > $o] :
      ( ( X2
        = ( hilbert_Eps_b @ P ) )
     => ( ! [X: b] :
            ( ( P @ X )
            = ( P5 @ X ) )
       => ( ( ? [X3: b] : ( P5 @ X3 ) )
          = ( P @ X2 ) ) ) ) ).

% verit_sko_ex_indirect2
thf(fact_20_verit__sko__ex__indirect,axiom,
    ! [X2: b,P: b > $o] :
      ( ( X2
        = ( hilbert_Eps_b @ P ) )
     => ( ( ? [X3: b] : ( P @ X3 ) )
        = ( P @ X2 ) ) ) ).

% verit_sko_ex_indirect
thf(fact_21_Nitpick_OEps__psimp,axiom,
    ! [P: b > $o,X2: b,Y4: b] :
      ( ( P @ X2 )
     => ( ~ ( P @ Y4 )
       => ( ( ( hilbert_Eps_b @ P )
            = Y4 )
         => ( ( hilbert_Eps_b @ P )
            = X2 ) ) ) ) ).

% Nitpick.Eps_psimp
thf(fact_22_some__in__eq,axiom,
    ! [A2: set_b] :
      ( ( member_b
        @ ( hilbert_Eps_b
          @ ^ [X4: b] : ( member_b @ X4 @ A2 ) )
        @ A2 )
      = ( A2 != bot_bot_set_b ) ) ).

% some_in_eq
thf(fact_23_exE__some,axiom,
    ! [P: b > $o,C: b] :
      ( ? [X_1: b] : ( P @ X_1 )
     => ( ( C
          = ( hilbert_Eps_b @ P ) )
       => ( P @ C ) ) ) ).

% exE_some
thf(fact_24_empty__Collect__eq,axiom,
    ! [P: b > $o] :
      ( ( bot_bot_set_b
        = ( collect_b @ P ) )
      = ( ! [X4: b] :
            ~ ( P @ X4 ) ) ) ).

% empty_Collect_eq
thf(fact_25_Collect__empty__eq,axiom,
    ! [P: b > $o] :
      ( ( ( collect_b @ P )
        = bot_bot_set_b )
      = ( ! [X4: b] :
            ~ ( P @ X4 ) ) ) ).

% Collect_empty_eq
thf(fact_26_all__not__in__conv,axiom,
    ! [A2: set_b] :
      ( ( ! [X4: b] :
            ~ ( member_b @ X4 @ A2 ) )
      = ( A2 = bot_bot_set_b ) ) ).

% all_not_in_conv
thf(fact_27_empty__iff,axiom,
    ! [C: b] :
      ~ ( member_b @ C @ bot_bot_set_b ) ).

% empty_iff
thf(fact_28_mem__Collect__eq,axiom,
    ! [A: b,P: b > $o] :
      ( ( member_b @ A @ ( collect_b @ P ) )
      = ( P @ A ) ) ).

% mem_Collect_eq
thf(fact_29_Collect__mem__eq,axiom,
    ! [A2: set_b] :
      ( ( collect_b
        @ ^ [X4: b] : ( member_b @ X4 @ A2 ) )
      = A2 ) ).

% Collect_mem_eq
thf(fact_30_bot__set__def,axiom,
    ( bot_bot_set_b
    = ( collect_b @ bot_bot_b_o ) ) ).

% bot_set_def
thf(fact_31_emptyE,axiom,
    ! [A: b] :
      ~ ( member_b @ A @ bot_bot_set_b ) ).

% emptyE
thf(fact_32_equals0D,axiom,
    ! [A2: set_b,A: b] :
      ( ( A2 = bot_bot_set_b )
     => ~ ( member_b @ A @ A2 ) ) ).

% equals0D
thf(fact_33_equals0I,axiom,
    ! [A2: set_b] :
      ( ! [Y3: b] :
          ~ ( member_b @ Y3 @ A2 )
     => ( A2 = bot_bot_set_b ) ) ).

% equals0I
thf(fact_34_ex__in__conv,axiom,
    ! [A2: set_b] :
      ( ( ? [X4: b] : ( member_b @ X4 @ A2 ) )
      = ( A2 != bot_bot_set_b ) ) ).

% ex_in_conv
thf(fact_35_empty__def,axiom,
    ( bot_bot_set_b
    = ( collect_b
      @ ^ [X4: b] : $false ) ) ).

% empty_def
thf(fact_36_Set_Ois__empty__def,axiom,
    ( is_empty_b
    = ( ^ [A3: set_b] : A3 = bot_bot_set_b ) ) ).

% Set.is_empty_def
thf(fact_37_Collect__empty__eq__bot,axiom,
    ! [P: b > $o] :
      ( ( ( collect_b @ P )
        = bot_bot_set_b )
      = ( P = bot_bot_b_o ) ) ).

% Collect_empty_eq_bot
thf(fact_38_bot__empty__eq,axiom,
    ( bot_bot_b_o
    = ( ^ [X4: b] : ( member_b @ X4 @ bot_bot_set_b ) ) ) ).

% bot_empty_eq
thf(fact_39_is__singletonI_H,axiom,
    ! [A2: set_b] :
      ( ( A2 != bot_bot_set_b )
     => ( ! [X: b,Y3: b] :
            ( ( member_b @ X @ A2 )
           => ( ( member_b @ Y3 @ A2 )
             => ( X = Y3 ) ) )
       => ( is_singleton_b @ A2 ) ) ) ).

% is_singletonI'
thf(fact_40_UNIV__I,axiom,
    ! [X2: b] : ( member_b @ X2 @ top_top_set_b ) ).

% UNIV_I
thf(fact_41_Collect__const,axiom,
    ! [P: $o] :
      ( ( P
       => ( ( collect_b
            @ ^ [S: b] : P )
          = top_top_set_b ) )
      & ( ~ P
       => ( ( collect_b
            @ ^ [S: b] : P )
          = bot_bot_set_b ) ) ) ).

% Collect_const
thf(fact_42_UNIV__eq__I,axiom,
    ! [A2: set_b] :
      ( ! [X: b] : ( member_b @ X @ A2 )
     => ( top_top_set_b = A2 ) ) ).

% UNIV_eq_I
thf(fact_43_UNIV__witness,axiom,
    ? [X: b] : ( member_b @ X @ top_top_set_b ) ).

% UNIV_witness
thf(fact_44_empty__not__UNIV,axiom,
    bot_bot_set_b != top_top_set_b ).

% empty_not_UNIV
thf(fact_45_iso__tuple__UNIV__I,axiom,
    ! [X2: b] : ( member_b @ X2 @ top_top_set_b ) ).

% iso_tuple_UNIV_I
thf(fact_46_is__singletonI,axiom,
    ! [X2: b] : ( is_singleton_b @ ( insert_b @ X2 @ bot_bot_set_b ) ) ).

% is_singletonI
thf(fact_47_insert__iff,axiom,
    ! [A: b,B2: b,A2: set_b] :
      ( ( member_b @ A @ ( insert_b @ B2 @ A2 ) )
      = ( ( A = B2 )
        | ( member_b @ A @ A2 ) ) ) ).

% insert_iff
thf(fact_48_insertCI,axiom,
    ! [A: b,B: set_b,B2: b] :
      ( ( ~ ( member_b @ A @ B )
       => ( A = B2 ) )
     => ( member_b @ A @ ( insert_b @ B2 @ B ) ) ) ).

% insertCI
thf(fact_49_singletonI,axiom,
    ! [A: b] : ( member_b @ A @ ( insert_b @ A @ bot_bot_set_b ) ) ).

% singletonI
thf(fact_50_singleton__conv,axiom,
    ! [A: b] :
      ( ( collect_b
        @ ^ [X4: b] : X4 = A )
      = ( insert_b @ A @ bot_bot_set_b ) ) ).

% singleton_conv
thf(fact_51_singleton__conv2,axiom,
    ! [A: b] :
      ( ( collect_b
        @ ( ^ [Y2: b,Z: b] : Y2 = Z
          @ A ) )
      = ( insert_b @ A @ bot_bot_set_b ) ) ).

% singleton_conv2
thf(fact_52_mk__disjoint__insert,axiom,
    ! [A: b,A2: set_b] :
      ( ( member_b @ A @ A2 )
     => ? [B3: set_b] :
          ( ( A2
            = ( insert_b @ A @ B3 ) )
          & ~ ( member_b @ A @ B3 ) ) ) ).

% mk_disjoint_insert
thf(fact_53_insert__eq__iff,axiom,
    ! [A: b,A2: set_b,B2: b,B: set_b] :
      ( ~ ( member_b @ A @ A2 )
     => ( ~ ( member_b @ B2 @ B )
       => ( ( ( insert_b @ A @ A2 )
            = ( insert_b @ B2 @ B ) )
          = ( ( ( A = B2 )
             => ( A2 = B ) )
            & ( ( A != B2 )
             => ? [C2: set_b] :
                  ( ( A2
                    = ( insert_b @ B2 @ C2 ) )
                  & ~ ( member_b @ B2 @ C2 )
                  & ( B
                    = ( insert_b @ A @ C2 ) )
                  & ~ ( member_b @ A @ C2 ) ) ) ) ) ) ) ).

% insert_eq_iff
thf(fact_54_insert__absorb,axiom,
    ! [A: b,A2: set_b] :
      ( ( member_b @ A @ A2 )
     => ( ( insert_b @ A @ A2 )
        = A2 ) ) ).

% insert_absorb
thf(fact_55_insert__ident,axiom,
    ! [X2: b,A2: set_b,B: set_b] :
      ( ~ ( member_b @ X2 @ A2 )
     => ( ~ ( member_b @ X2 @ B )
       => ( ( ( insert_b @ X2 @ A2 )
            = ( insert_b @ X2 @ B ) )
          = ( A2 = B ) ) ) ) ).

% insert_ident
thf(fact_56_insert__compr,axiom,
    ( insert_b
    = ( ^ [A4: b,B4: set_b] :
          ( collect_b
          @ ^ [X4: b] :
              ( ( X4 = A4 )
              | ( member_b @ X4 @ B4 ) ) ) ) ) ).

% insert_compr
thf(fact_57_Set_Oset__insert,axiom,
    ! [X2: b,A2: set_b] :
      ( ( member_b @ X2 @ A2 )
     => ~ ! [B3: set_b] :
            ( ( A2
              = ( insert_b @ X2 @ B3 ) )
           => ( member_b @ X2 @ B3 ) ) ) ).

% Set.set_insert
thf(fact_58_insertI2,axiom,
    ! [A: b,B: set_b,B2: b] :
      ( ( member_b @ A @ B )
     => ( member_b @ A @ ( insert_b @ B2 @ B ) ) ) ).

% insertI2
thf(fact_59_insertI1,axiom,
    ! [A: b,B: set_b] : ( member_b @ A @ ( insert_b @ A @ B ) ) ).

% insertI1
thf(fact_60_insertE,axiom,
    ! [A: b,B2: b,A2: set_b] :
      ( ( member_b @ A @ ( insert_b @ B2 @ A2 ) )
     => ( ( A != B2 )
       => ( member_b @ A @ A2 ) ) ) ).

% insertE
thf(fact_61_top__empty__eq,axiom,
    ( top_top_b_o
    = ( ^ [X4: b] : ( member_b @ X4 @ top_top_set_b ) ) ) ).

% top_empty_eq
thf(fact_62_singleton__inject,axiom,
    ! [A: b,B2: b] :
      ( ( ( insert_b @ A @ bot_bot_set_b )
        = ( insert_b @ B2 @ bot_bot_set_b ) )
     => ( A = B2 ) ) ).

% singleton_inject
thf(fact_63_insert__not__empty,axiom,
    ! [A: b,A2: set_b] :
      ( ( insert_b @ A @ A2 )
     != bot_bot_set_b ) ).

% insert_not_empty
thf(fact_64_doubleton__eq__iff,axiom,
    ! [A: b,B2: b,C: b,D: b] :
      ( ( ( insert_b @ A @ ( insert_b @ B2 @ bot_bot_set_b ) )
        = ( insert_b @ C @ ( insert_b @ D @ bot_bot_set_b ) ) )
      = ( ( ( A = C )
          & ( B2 = D ) )
        | ( ( A = D )
          & ( B2 = C ) ) ) ) ).

% doubleton_eq_iff
thf(fact_65_singleton__iff,axiom,
    ! [B2: b,A: b] :
      ( ( member_b @ B2 @ ( insert_b @ A @ bot_bot_set_b ) )
      = ( B2 = A ) ) ).

% singleton_iff
thf(fact_66_singletonD,axiom,
    ! [B2: b,A: b] :
      ( ( member_b @ B2 @ ( insert_b @ A @ bot_bot_set_b ) )
     => ( B2 = A ) ) ).

% singletonD
thf(fact_67_Collect__conv__if,axiom,
    ! [P: b > $o,A: b] :
      ( ( ( P @ A )
       => ( ( collect_b
            @ ^ [X4: b] :
                ( ( X4 = A )
                & ( P @ X4 ) ) )
          = ( insert_b @ A @ bot_bot_set_b ) ) )
      & ( ~ ( P @ A )
       => ( ( collect_b
            @ ^ [X4: b] :
                ( ( X4 = A )
                & ( P @ X4 ) ) )
          = bot_bot_set_b ) ) ) ).

% Collect_conv_if
thf(fact_68_Collect__conv__if2,axiom,
    ! [P: b > $o,A: b] :
      ( ( ( P @ A )
       => ( ( collect_b
            @ ^ [X4: b] :
                ( ( A = X4 )
                & ( P @ X4 ) ) )
          = ( insert_b @ A @ bot_bot_set_b ) ) )
      & ( ~ ( P @ A )
       => ( ( collect_b
            @ ^ [X4: b] :
                ( ( A = X4 )
                & ( P @ X4 ) ) )
          = bot_bot_set_b ) ) ) ).

% Collect_conv_if2
thf(fact_69_is__singleton__def,axiom,
    ( is_singleton_b
    = ( ^ [A3: set_b] :
        ? [X4: b] :
          ( A3
          = ( insert_b @ X4 @ bot_bot_set_b ) ) ) ) ).

% is_singleton_def
thf(fact_70_is__singletonE,axiom,
    ! [A2: set_b] :
      ( ( is_singleton_b @ A2 )
     => ~ ! [X: b] :
            ( A2
           != ( insert_b @ X @ bot_bot_set_b ) ) ) ).

% is_singletonE
thf(fact_71_is__singleton__the__elem,axiom,
    ( is_singleton_b
    = ( ^ [A3: set_b] :
          ( A3
          = ( insert_b @ ( the_elem_b @ A3 ) @ bot_bot_set_b ) ) ) ) ).

% is_singleton_the_elem
thf(fact_72_the__elem__eq,axiom,
    ! [X2: b] :
      ( ( the_elem_b @ ( insert_b @ X2 @ bot_bot_set_b ) )
      = X2 ) ).

% the_elem_eq
thf(fact_73_image__eqI,axiom,
    ! [B2: b,F: b > b,X2: b,A2: set_b] :
      ( ( B2
        = ( F @ X2 ) )
     => ( ( member_b @ X2 @ A2 )
       => ( member_b @ B2 @ ( image_b_b @ F @ A2 ) ) ) ) ).

% image_eqI
thf(fact_74_image__is__empty,axiom,
    ! [F: b > b,A2: set_b] :
      ( ( ( image_b_b @ F @ A2 )
        = bot_bot_set_b )
      = ( A2 = bot_bot_set_b ) ) ).

% image_is_empty
thf(fact_75_empty__is__image,axiom,
    ! [F: b > b,A2: set_b] :
      ( ( bot_bot_set_b
        = ( image_b_b @ F @ A2 ) )
      = ( A2 = bot_bot_set_b ) ) ).

% empty_is_image
thf(fact_76_image__empty,axiom,
    ! [F: b > b] :
      ( ( image_b_b @ F @ bot_bot_set_b )
      = bot_bot_set_b ) ).

% image_empty
thf(fact_77_imageE,axiom,
    ! [B2: b,F: b > b,A2: set_b] :
      ( ( member_b @ B2 @ ( image_b_b @ F @ A2 ) )
     => ~ ! [X: b] :
            ( ( B2
              = ( F @ X ) )
           => ~ ( member_b @ X @ A2 ) ) ) ).

% imageE
thf(fact_78_imageI,axiom,
    ! [X2: b,A2: set_b,F: b > b] :
      ( ( member_b @ X2 @ A2 )
     => ( member_b @ ( F @ X2 ) @ ( image_b_b @ F @ A2 ) ) ) ).

% imageI
thf(fact_79_rev__image__eqI,axiom,
    ! [X2: b,A2: set_b,B2: b,F: b > b] :
      ( ( member_b @ X2 @ A2 )
     => ( ( B2
          = ( F @ X2 ) )
       => ( member_b @ B2 @ ( image_b_b @ F @ A2 ) ) ) ) ).

% rev_image_eqI
thf(fact_80_Compr__image__eq,axiom,
    ! [F: b > b,A2: set_b,P: b > $o] :
      ( ( collect_b
        @ ^ [X4: b] :
            ( ( member_b @ X4 @ ( image_b_b @ F @ A2 ) )
            & ( P @ X4 ) ) )
      = ( image_b_b @ F
        @ ( collect_b
          @ ^ [X4: b] :
              ( ( member_b @ X4 @ A2 )
              & ( P @ ( F @ X4 ) ) ) ) ) ) ).

% Compr_image_eq
thf(fact_81_inv__into__into,axiom,
    ! [X2: b,F: b > b,A2: set_b] :
      ( ( member_b @ X2 @ ( image_b_b @ F @ A2 ) )
     => ( member_b @ ( hilbert_inv_into_b_b @ A2 @ F @ X2 ) @ A2 ) ) ).

% inv_into_into
thf(fact_82_image__constant,axiom,
    ! [X2: b,A2: set_b,C: b] :
      ( ( member_b @ X2 @ A2 )
     => ( ( image_b_b
          @ ^ [X4: b] : C
          @ A2 )
        = ( insert_b @ C @ bot_bot_set_b ) ) ) ).

% image_constant
thf(fact_83_image__constant__conv,axiom,
    ! [A2: set_b,C: b] :
      ( ( ( A2 = bot_bot_set_b )
       => ( ( image_b_b
            @ ^ [X4: b] : C
            @ A2 )
          = bot_bot_set_b ) )
      & ( ( A2 != bot_bot_set_b )
       => ( ( image_b_b
            @ ^ [X4: b] : C
            @ A2 )
          = ( insert_b @ C @ bot_bot_set_b ) ) ) ) ).

% image_constant_conv
thf(fact_84_bij__betw__empty2,axiom,
    ! [F: b > b,A2: set_b] :
      ( ( bij_betw_b_b @ F @ A2 @ bot_bot_set_b )
     => ( A2 = bot_bot_set_b ) ) ).

% bij_betw_empty2
thf(fact_85_bij__betw__empty1,axiom,
    ! [F: b > b,A2: set_b] :
      ( ( bij_betw_b_b @ F @ bot_bot_set_b @ A2 )
     => ( A2 = bot_bot_set_b ) ) ).

% bij_betw_empty1
thf(fact_86_inj__singleton,axiom,
    ! [A2: set_b] :
      ( inj_on_b_set_b
      @ ^ [X4: b] : ( insert_b @ X4 @ bot_bot_set_b )
      @ A2 ) ).

% inj_singleton
thf(fact_87_inj__img__insertE,axiom,
    ! [F: b > b,A2: set_b,X2: b,B: set_b] :
      ( ( inj_on_b_b @ F @ A2 )
     => ( ~ ( member_b @ X2 @ B )
       => ( ( ( insert_b @ X2 @ B )
            = ( image_b_b @ F @ A2 ) )
         => ~ ! [X6: b,A5: set_b] :
                ( ~ ( member_b @ X6 @ A5 )
               => ( ( A2
                    = ( insert_b @ X6 @ A5 ) )
                 => ( ( X2
                      = ( F @ X6 ) )
                   => ( B
                     != ( image_b_b @ F @ A5 ) ) ) ) ) ) ) ) ).

% inj_img_insertE
thf(fact_88_inj__image__mem__iff,axiom,
    ! [F: b > b,A: b,A2: set_b] :
      ( ( inj_on_b_b @ F @ top_top_set_b )
     => ( ( member_b @ ( F @ A ) @ ( image_b_b @ F @ A2 ) )
        = ( member_b @ A @ A2 ) ) ) ).

% inj_image_mem_iff
thf(fact_89_inj__on__insert,axiom,
    ! [F: b > b,A: b,A2: set_b] :
      ( ( inj_on_b_b @ F @ ( insert_b @ A @ A2 ) )
      = ( ( inj_on_b_b @ F @ A2 )
        & ~ ( member_b @ ( F @ A ) @ ( image_b_b @ F @ ( minus_minus_set_b @ A2 @ ( insert_b @ A @ bot_bot_set_b ) ) ) ) ) ) ).

% inj_on_insert
thf(fact_90_DiffI,axiom,
    ! [C: b,A2: set_b,B: set_b] :
      ( ( member_b @ C @ A2 )
     => ( ~ ( member_b @ C @ B )
       => ( member_b @ C @ ( minus_minus_set_b @ A2 @ B ) ) ) ) ).

% DiffI
thf(fact_91_Diff__iff,axiom,
    ! [C: b,A2: set_b,B: set_b] :
      ( ( member_b @ C @ ( minus_minus_set_b @ A2 @ B ) )
      = ( ( member_b @ C @ A2 )
        & ~ ( member_b @ C @ B ) ) ) ).

% Diff_iff
thf(fact_92_Diff__empty,axiom,
    ! [A2: set_b] :
      ( ( minus_minus_set_b @ A2 @ bot_bot_set_b )
      = A2 ) ).

% Diff_empty
thf(fact_93_empty__Diff,axiom,
    ! [A2: set_b] :
      ( ( minus_minus_set_b @ bot_bot_set_b @ A2 )
      = bot_bot_set_b ) ).

% empty_Diff
thf(fact_94_Diff__cancel,axiom,
    ! [A2: set_b] :
      ( ( minus_minus_set_b @ A2 @ A2 )
      = bot_bot_set_b ) ).

% Diff_cancel
thf(fact_95_insert__Diff1,axiom,
    ! [X2: b,B: set_b,A2: set_b] :
      ( ( member_b @ X2 @ B )
     => ( ( minus_minus_set_b @ ( insert_b @ X2 @ A2 ) @ B )
        = ( minus_minus_set_b @ A2 @ B ) ) ) ).

% insert_Diff1
thf(fact_96_Diff__insert0,axiom,
    ! [X2: b,A2: set_b,B: set_b] :
      ( ~ ( member_b @ X2 @ A2 )
     => ( ( minus_minus_set_b @ A2 @ ( insert_b @ X2 @ B ) )
        = ( minus_minus_set_b @ A2 @ B ) ) ) ).

% Diff_insert0
thf(fact_97_insert__Diff__single,axiom,
    ! [A: b,A2: set_b] :
      ( ( insert_b @ A @ ( minus_minus_set_b @ A2 @ ( insert_b @ A @ bot_bot_set_b ) ) )
      = ( insert_b @ A @ A2 ) ) ).

% insert_Diff_single
thf(fact_98_Diff__UNIV,axiom,
    ! [A2: set_b] :
      ( ( minus_minus_set_b @ A2 @ top_top_set_b )
      = bot_bot_set_b ) ).

% Diff_UNIV
thf(fact_99_Diff__insert__absorb,axiom,
    ! [X2: b,A2: set_b] :
      ( ~ ( member_b @ X2 @ A2 )
     => ( ( minus_minus_set_b @ ( insert_b @ X2 @ A2 ) @ ( insert_b @ X2 @ bot_bot_set_b ) )
        = A2 ) ) ).

% Diff_insert_absorb
thf(fact_100_Diff__insert2,axiom,
    ! [A2: set_b,A: b,B: set_b] :
      ( ( minus_minus_set_b @ A2 @ ( insert_b @ A @ B ) )
      = ( minus_minus_set_b @ ( minus_minus_set_b @ A2 @ ( insert_b @ A @ bot_bot_set_b ) ) @ B ) ) ).

% Diff_insert2
thf(fact_101_insert__Diff,axiom,
    ! [A: b,A2: set_b] :
      ( ( member_b @ A @ A2 )
     => ( ( insert_b @ A @ ( minus_minus_set_b @ A2 @ ( insert_b @ A @ bot_bot_set_b ) ) )
        = A2 ) ) ).

% insert_Diff
thf(fact_102_Diff__insert,axiom,
    ! [A2: set_b,A: b,B: set_b] :
      ( ( minus_minus_set_b @ A2 @ ( insert_b @ A @ B ) )
      = ( minus_minus_set_b @ ( minus_minus_set_b @ A2 @ B ) @ ( insert_b @ A @ bot_bot_set_b ) ) ) ).

% Diff_insert
thf(fact_103_in__image__insert__iff,axiom,
    ! [B: set_set_b,X2: b,A2: set_b] :
      ( ! [C3: set_b] :
          ( ( member_set_b @ C3 @ B )
         => ~ ( member_b @ X2 @ C3 ) )
     => ( ( member_set_b @ A2 @ ( image_set_b_set_b @ ( insert_b @ X2 ) @ B ) )
        = ( ( member_b @ X2 @ A2 )
          & ( member_set_b @ ( minus_minus_set_b @ A2 @ ( insert_b @ X2 @ bot_bot_set_b ) ) @ B ) ) ) ) ).

% in_image_insert_iff
thf(fact_104_DiffE,axiom,
    ! [C: b,A2: set_b,B: set_b] :
      ( ( member_b @ C @ ( minus_minus_set_b @ A2 @ B ) )
     => ~ ( ( member_b @ C @ A2 )
         => ( member_b @ C @ B ) ) ) ).

% DiffE
thf(fact_105_DiffD1,axiom,
    ! [C: b,A2: set_b,B: set_b] :
      ( ( member_b @ C @ ( minus_minus_set_b @ A2 @ B ) )
     => ( member_b @ C @ A2 ) ) ).

% DiffD1
thf(fact_106_DiffD2,axiom,
    ! [C: b,A2: set_b,B: set_b] :
      ( ( member_b @ C @ ( minus_minus_set_b @ A2 @ B ) )
     => ~ ( member_b @ C @ B ) ) ).

% DiffD2
thf(fact_107_set__diff__eq,axiom,
    ( minus_minus_set_b
    = ( ^ [A3: set_b,B4: set_b] :
          ( collect_b
          @ ^ [X4: b] :
              ( ( member_b @ X4 @ A3 )
              & ~ ( member_b @ X4 @ B4 ) ) ) ) ) ).

% set_diff_eq
thf(fact_108_insert__Diff__if,axiom,
    ! [X2: b,B: set_b,A2: set_b] :
      ( ( ( member_b @ X2 @ B )
       => ( ( minus_minus_set_b @ ( insert_b @ X2 @ A2 ) @ B )
          = ( minus_minus_set_b @ A2 @ B ) ) )
      & ( ~ ( member_b @ X2 @ B )
       => ( ( minus_minus_set_b @ ( insert_b @ X2 @ A2 ) @ B )
          = ( insert_b @ X2 @ ( minus_minus_set_b @ A2 @ B ) ) ) ) ) ).

% insert_Diff_if
thf(fact_109_remove__def,axiom,
    ( remove_b
    = ( ^ [X4: b,A3: set_b] : ( minus_minus_set_b @ A3 @ ( insert_b @ X4 @ bot_bot_set_b ) ) ) ) ).

% remove_def

% Conjectures (2)
thf(conj_0,hypothesis,
    ! [X5: a] :
      ( ( p @ X5 )
     => ? [X_12: b] : ( q @ X5 @ X_12 ) ) ).

thf(conj_1,conjecture,
    ! [X: a] :
      ( ~ ( p @ X )
      | ( q @ X @ ( hilbert_Eps_b @ ( q @ X ) ) ) ) ).

%------------------------------------------------------------------------------